import request from '@/utils/request'

// ==================== 入库相关API ====================

/**
 * 获取入库列表
 * @param {Object} params 查询参数
 */
export function getInboundList(params) {
  return request({
    url: '/api/warehouse/inbound',
    method: 'get',
    params
  })
}

/**
 * 获取入库记录列表
 * @param {Object} params 查询参数
 */
export function getInboundRecordList(params) {
  return request({
    url: '/api/warehouse/inbound-records',
    method: 'get',
    params
  })
}

/**
 * 执行入库操作
 * @param {Object} data 入库数据
 */
export function createInbound(data) {
  return request({
    url: '/api/warehouse/inbound',
    method: 'post',
    data
  })
}

/**
 * 批量入库
 * @param {Array} items 批量入库数据
 */
export function batchInbound(items) {
  return request({
    url: '/api/warehouse/inbound/batch',
    method: 'post',
    data: { items }
  })
}

/**
 * 更新入库记录
 * @param {Number} id 记录ID
 * @param {Object} data 更新数据
 */
export function updateInboundRecord(id, data) {
  return request({
    url: `/api/warehouse/inbound-records/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除入库记录
 * @param {Number} id 记录ID
 */
export function deleteInboundRecord(id) {
  return request({
    url: `/api/warehouse/inbound-records/${id}`,
    method: 'delete'
  })
}

// ==================== 出库相关API ====================

/**
 * 获取出库列表
 * @param {Object} params 查询参数
 */
export function getOutboundList(params) {
  return request({
    url: '/api/warehouse/outbound',
    method: 'get',
    params
  })
}

/**
 * 获取出库记录列表
 * @param {Object} params 查询参数
 */
export function getOutboundRecordList(params) {
  return request({
    url: '/api/warehouse/outbound-records',
    method: 'get',
    params
  })
}

/**
 * 执行出库操作
 * @param {Object} data 出库数据
 */
export function createOutbound(data) {
  return request({
    url: '/api/warehouse/outbound',
    method: 'post',
    data
  })
}

/**
 * 批量出库
 * @param {Array} items 批量出库数据
 */
export function batchOutbound(items) {
  return request({
    url: '/api/warehouse/outbound/batch',
    method: 'post',
    data: { items }
  })
}

// ==================== 通用API ====================

/**
 * 获取供应商选项
 * @param {String} keyword 搜索关键词
 */
export function getSupplierOptions(keyword = '') {
  return request({
    url: '/api/suppliers/options',
    method: 'get',
    params: { keyword }
  })
}

/**
 * 搜索供应商
 * @param {String} query 搜索查询
 */
export function searchSuppliers(query) {
  return request({
    url: '/api/suppliers/search',
    method: 'get',
    params: { query }
  })
}

/**
 * 导出入库数据
 * @param {Object} params 查询参数
 */
export function exportInboundData(params) {
  return request({
    url: '/api/warehouse/inbound/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

/**
 * 导出入库记录数据
 * @param {Object} params 查询参数
 */
export function exportInboundRecords(params) {
  return request({
    url: '/api/warehouse/inbound-records/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

/**
 * 导出出库数据
 * @param {Object} params 查询参数
 */
export function exportOutboundData(params) {
  return request({
    url: '/api/warehouse/outbound/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

/**
 * 导出出库记录数据
 * @param {Object} params 查询参数
 */
export function exportOutboundRecords(params) {
  return request({
    url: '/api/warehouse/outbound-records/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

// ==================== 库存相关API ====================

/**
 * 获取库存列表
 * @param {Object} params 查询参数
 */
export function getInventoryList(params) {
  return request({
    url: '/api/warehouse/inventory',
    method: 'get',
    params
  })
}

/**
 * 库存盘点
 * @param {Object} data 盘点数据
 */
export function inventoryCheck(data) {
  return request({
    url: '/api/warehouse/inventory/check',
    method: 'post',
    data
  })
}

/**
 * 导出库存数据
 * @param {Object} params 查询参数
 */
export function exportInventoryData(params) {
  return request({
    url: '/api/warehouse/inventory/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

// ==================== 其他相关API ====================

/**
 * 获取仓库统计信息
 */
export function getWarehouseStats() {
  return request({
    url: '/api/warehouse/stats',
    method: 'get'
  })
}

/**
 * 获取商品分类选项
 */
export function getCategoryOptions() {
  return request({
    url: '/api/categories/options',
    method: 'get'
  })
}

/**
 * 搜索物料编码
 * @param {String} keyword 搜索关键词
 */
export function searchMaterialCodes(keyword) {
  return request({
    url: '/api/materials/search',
    method: 'get',
    params: { keyword }
  })
}

/**
 * 获取仓库配置
 */
export function getWarehouseConfig() {
  return request({
    url: '/api/warehouse/config',
    method: 'get'
  })
}

/**
 * 更新仓库配置
 * @param {Object} data 配置数据
 */
export function updateWarehouseConfig(data) {
  return request({
    url: '/api/warehouse/config',
    method: 'put',
    data
  })
} 